package com.spider.silence.itf.downloader;

import org.jsoup.nodes.Document;
import us.codecraft.webmagic.Page;

import java.util.Map;

/**
 * Created by 夏茂轩 on 2016/12/16.
 */
public interface DownLoader {
    /**
     * 获取原始的字符串
     * @param url http链接
     * @param proxy 代理 Ip+Port
     * @return String 返回内容
     */
    String getString(String url,final String proxy) throws  Exception;

    /**
     * 获取原始的字符串
     * @param url http链接
     * @return String 返回内容
     */
    String getString(String url) throws  Exception;

    /**
     * 获取原始的字符串
     * @param url http链接
     * @param isProxy 是否使用代理
     * @return String
     */
    String getString(String url,boolean isProxy) throws Exception;
    /**
     * get 方法
     * @param url http链接
     * @return org.jsoup.nodes.Document
     */
    Document get(String url) throws Exception;

    /**
     * get方法
     * @param url url http链接
     * @param proxy ip:port
     * @return org.jsoup.nodes.Document
     */
    Document get(String url,String proxy)  throws Exception;

    /**
     * GET方法直接返回Page
     * @param url  url http链接
     * @param proxy proxy ip:port
     * @return  us.codecraft.webmagic.Page
     * @throws Exception 请求异常
     */
    Page getHtml(String url, String proxy) throws Exception;


    /**
     *  GET方法直接返回Page
     * @param url url http链接
     * @return us.codecraft.webmagic.Page
     * @throws Exception
     */
    Page getHtml(String url) throws Exception;

    /**
     * GET方法直接返回Page
     * @param url url http链接
     * @param isProxy
     * @return us.codecraft.webmagic.Page
     * @throws Exception
     */
    Page getHtml(String url,boolean isProxy) throws Exception;

    /**
     * get方法
     * @param url url http链接
     * @param isProxy 是否使用代理
     * @return org.jsoup.nodes.Document
     * @throws Exception
     */
    Document get(String url,boolean isProxy)  throws Exception;

    /**
     * post 方法
     * @param url http链接
     * @return org.jsoup.nodes.Document
     */
    Document post(String url)  throws Exception;
    /**
     * post 方法
     * @param url http链接
     * @return org.jsoup.nodes.Document
     */
    Document post(String url,String proxy)  throws Exception;

    /**
     * post方法
     * @param url  url http链接
     * @param isProxy 是否使用代理
     * @return org.jsoup.nodes.Document
     * @throws Exception
     */
    Document post(String url,boolean isProxy)  throws Exception;

    /**
     * post 方法
     * @param url http链接
     * @param params 请求参数
     * @return org.jsoup.nodes.Document
     */
    Document post(String url, Map<String,String> params)  throws Exception;

    /**
     *  post 方法
     * @param url http链接
     * @param params params 请求参数
     * @param proxy ip:port
     * @return org.jsoup.nodes.Document
     */
    Document post(String url, Map<String,String> params,String proxy)  throws Exception;

    /**
     * post 方法
     * @param url http链接
     * @param params params 请求参数
     * @param isProxy 是否使用代理
     * @return org.jsoup.nodes.Document
     * @throws Exception
     */
    Document post(String url, Map<String,String> params,boolean isProxy)  throws Exception;
}
